
package com.hlkj.pay.infrastructure.mapper.order;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.mybatis.core.mapper.BaseMapperX;
import com.hlkj.pay.dto.home.HomePageCharsStatisticsDto;
import com.hlkj.pay.dto.home.HomePageCharsStatisticsQueryDto;
import com.hlkj.pay.dto.home.HomePageOrderSucessRateDto;
import com.hlkj.pay.dto.home.HomePageStatisticsDto;
import com.hlkj.pay.infrastructure.model.order.OrderStatisticsDO;
import com.hlkj.pay.vo.order.req.HomePageStatisticsReq;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author HlpayTeam
 * @date 2024/11/08 13:28
 */
@Mapper
public interface HomeStatisticsMapper extends BaseMapperX<HomePageStatisticsDto> {

    /**
     * 根据日期统计交易金额
     */
    HomePageStatisticsDto statisticsOrders(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 根据日期统计充值金额
     */
    BigDecimal statisticsRecharge(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 近7日订单交易统计
     */
    List<HomePageCharsStatisticsDto> daysStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 近7月订单交易统计
     */
    List<HomePageCharsStatisticsDto> monthStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日商户排行
     */
    List<HomePageCharsStatisticsDto> merchantDayTop(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日订单支付方式统计
     */
    List<HomePageCharsStatisticsDto> payTypeStatistics(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 日订单支付成功率统计
     */
    List<HomePageOrderSucessRateDto> statisticsSuccessRate(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

    /**
     * 数据大屏统计
     */
    OrderStatisticsDO statisticsQuery(@Param("query") HomePageCharsStatisticsQueryDto homePageCharsStatisticsQueryDto);

}
